#pragma once

class TColStd_Array1OfReal  {
public:
      TColStd_Array1OfReal(const int Low,const int Up);
  
      TColStd_Array1OfReal(const double & Item,const int Low,const int Up);
  
    void Init(const double & V) ;
  
    void Destroy() ;
	~TColStd_Array1OfReal()
	{
	  Destroy();
	}
  
        bool  IsAllocated() const;
  
      const TColStd_Array1OfReal& Assign(const TColStd_Array1OfReal& Other) ;
   const TColStd_Array1OfReal& operator =(const TColStd_Array1OfReal& Other) 
{
  return Assign(Other);
}
  
        int Length() const;
  
        int Lower() const;
  
        int Upper() const;
  
        void SetValue(const int Index,const double & Value) ;
  
       const double & Value(const int Index) const;
     const double & operator ()(const int Index) const
{
  return Value(Index);
}
  
        double & ChangeValue(const int Index) ;
      double & operator ()(const int Index) 
{
  return ChangeValue(Index);
}

private:

     TColStd_Array1OfReal(const TColStd_Array1OfReal& AnArray);
	int myLowerBound;
	int myUpperBound;
	void* myStart;
	bool  isAllocated;

};

#define Array1Item double
#define TCollection_Array1 TColStd_Array1OfReal
#define TCollection_Array1_hxx <TColStd_Array1OfReal.h>